查看原文
其他

Y叔 2018-06-02


这个问题,让我想起来了prettyB包,它给我们一键美化的功能,也展示了美化base plot的可能性。base plot还有一个好处,你的代码起码可以保障5年10年都可以用,但ggplot2就可能不太行了,不信你拿两年前的代码出来跑一下:)

虽然我是ggplot2爱好者,但有些ggplot2版本的画图函数实在是不敢恭维,除了可以用themes来改一些细节之外,缺少太多ggplot2的特性,我认为是不能称之为grammar of graphics的。基本上有很多实现还不如原先base plot,而且base plot有大量现成的各种画图函数,涵盖面要比ggplot2多。但是由于base plot的设计比较久远,画出来的图基本上看着像是20年前,不够漂亮,缺少现代化元素。


这里要推荐的是base plot的主题包,prettyB (https://github.com/jumpingrivers/prettyB),虽然目前只有两个主题minimal和expand,但这是一个非常好的尝试,可以让大量现有的画图函数出图效果更加现代化,减少illustrator修图的麻烦。


library(prettyB)
op
= par(mfrow = c(1, 2))
graphics::plot.default(iris$Sepal.Length,
   iris$Sepal.Width)plot(iris$Sepal.Length, iris$Sepal.Width)


载入包之后,默认的行为只会被改变,你用plot的时候,已经是使用主题的了。



效果是明显的,然后可以设置主题:


theme_set("minimal")
graphics::plot.default(iris$Sepal.Length, iris$Sepal.Width,
main="Classic Iris Dataset", xlab="Length", ylab="Width")
plot(iris$Sepal.Length, iris$Sepal.Width,
main="Classic Iris Dataset", xlab="Length", ylab="Width")


结果再画就是这样:



以下是barplot的一个例子。


我认为这是非常好的开端,随着不同主题的开发,base plot可以焕发青春,毕竟对于新手来手,只要知道plot命令就能出图,还是比较友好的。

电梯


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存